With a vast of ever-increasing information available electronically, a search engine is typically utilized by a user to locate desired pieces of information. For example, a user may perform a keyword search where the user inputs one or more keywords to a search engine, which returns back to the user a search result set containing documents that include at least one or all of the inputted keywords. In addition to be able to generate better search results (i.e., information better matched to what the user is looking for), a search engine must also satisfy the expectation of the user to receive and explore the search results quickly. Typically, search results are encoded for the purposes of speed and saving memory space. However, search engines have faced a common problem in dealing with a tradeoff between time and space when implementing an encoding scheme. On one hand, a simplified encoding scheme usually allows a quicker decoding process, but requires more memory space. On the other hand, a more complex encoding scheme typically has a slower decoding process but consumes less memory space.